import config from '@/config.js'
import {
	getStorage
} from '@/util/auth.js';
import {
	Encrypt,
	Decrypt
} from '@/js_sdk/cainiao-crypto/cainiao-crypto.js'
import {
	getWxLoginCode
} from '@/util/user.js'
import store from '@/store/index.js'
export default function(parameter) {
	parameter.header = {};
	const token = getStorage('token');
	const position = getStorage('position');
	if (token) {
		parameter.header['Authori-zation'] = token;
	}
	parameter.url = config.requestPayUrl + parameter.url
	return new Promise((resolve, reject) => {
		uni.request({
			...parameter,
			success(e) {
				uni.hideLoading().then(() => {
					if (e.statusCode != 200) {
						uni.showToast({
							title: '请求失败',
							icon: 'none',
							mask: true,
						})
						reject();
					} else {
						const response = e.data;
						switch (response.code) {
							case 200:
								//本地调试时， 可以删除此方法
								// if (response.data) {
								// 	let deStr;
								// 	const mi = Decrypt(response.data);
								// 	try {
								// 		deStr = JSON.parse(mi);
								// 	} catch (error) {

								// 		deStr = mi; // 或者其他默认值
								// 	}
								// 	resolve(deStr);
								// 	break;
								// }
								resolve(response.data);
								break;
							case 401:
								uni.showToast({
									title: response.message,
									icon: 'none',
									mask: true,
									duration: 2000,
									success: () => {
										setTimeout(() => {
											this.navigate(
												'/pages/login/login');
										}, 2000)
									}
								})
								break;
							case 403:
								uni.showToast({
									title: '暂无权限',
									icon: 'none',
									duration: 2000,
									mask: true,
									success() {
										setTimeout(() => {
											reject();
										}, 2000)
									}
								})
								break;
							case 500:
								uni.showToast({
									title: response.message,
									icon: 'none',
									duration: 2000,
									mask: true,
									success() {
										setTimeout(() => {
											reject();
										}, 2000)
									}
								})
								break;
							default:
								uni.showToast({
									title: response.message,
									icon: 'none',
									duration: 2000,
									mask: true,
									success() {
										setTimeout(() => {
											reject();
										}, 2000)
									}
								})
								break;
						}
					}
				})

			},
			fail() {
				uni.hideLoading().then(() => {
					uni.showToast({
						title: '请求失败',
						icon: 'none',
						mask: true,
						duration: 2000,
						success() {
							setTimeout(() => {
								reject();
							}, 2000)
						}
					})
				})
			}
		})
	})
}